using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Infra.UI.Common;
using Sinacor.UI.Bovespa.Ordens.Model.Enum;

namespace  Sinacor.UI.Bovespa.Ordens.Model
{
    public class Negocio : BaseModel
    {
        private string BolsaField;
        private System.Nullable<int> ClienteField;
        private string CodigoTituloField;
        private int? ContraParteField;
        private System.Nullable<System.DateTime> DataMovimentoField;
        private System.Nullable<DateTime> DataNegocioField;
        private System.Nullable<System.DateTime> DataPregaoField;
        private System.Nullable<int> DiasLiquidacaoField;
        private System.Nullable<int> DigitoNegocioField;
         
        private System.Nullable<TipoEstrategia> EstrategiaField;

        private System.Nullable<decimal> FatorValorizacaoField;
        private System.Nullable<int> NumeroNegocioField;
        private string OperadorField;
        private System.Nullable<decimal> PercentualCorrespondenteField;
        private System.Nullable<int> PrazoTermoField;
        private System.Nullable<decimal> PrecoField;
        private System.Nullable<decimal> QuantidadeCasadaField;
        private System.Nullable<decimal> SaldoField;

        //private Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoCasamento TipoCasamentoField;
        private TipoCasamento? TipoCasamentoField;

        //private System.Nullable<Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoLiquidacaoNegocio> TipoLiquidacaoField;
        private TipoLiquidacaoNegocio? TipoLiquidacaoField;

        //private System.Nullable<Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoMercado> TipoMercadoField;
        private EnumWrapper<TipoMercado> TipoMercadoField = null;

        //private System.Nullable<Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoNaturezaOperacao> TipoNaturezaOperacaoField;
        private TipoNaturezaOperacao? TipoNaturezaOperacaoField;

        //private System.Nullable<Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoOfertaBovespaFix> TipoOfertaBovespaFixField;
        private TipoOfertaBovespaFix? TipoOfertaBovespaFixField;

        //private System.Nullable<Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoOrigemNegocio> TipoOrigemField;
        private TipoOrigemNegocio? TipoOrigemField;

        //private Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoSituacaoCasamento TipoSituacaoField;
        private TipoSituacaoOrdem TipoSituacaoField;

        //private System.Nullable<Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TipoTermo> TipoTermoField;
        private TipoTermo? TipoTermoField;

        //private Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.TituloResponse TituloField;
        //private ModelTitulo TituloField;

        private string TituloObjetoField;
        private System.Nullable<System.DateTime> VencimentoOpcoesTermoField;
        private System.Nullable<System.DateTime> HoraNegocioField;
        private System.Nullable<decimal> QuantidadeField;
        private System.Nullable<bool> PontaGeradoraOfertaField;
        private System.Nullable<bool> NaoLiquidaNotaField;
        private System.Nullable<bool> NegociadoAfterMarketField;
        private string ObservacaoField;
        private System.Nullable<int> CodigoCorrespondenteField;
        //20080420 16:23 - Alterado - DMilanez.7Comm
        private TipoEstrategiaOfertaBovespaFix? TipoEstrategiaOfertaBovespaFixField;
        private Model.Titulo _titulo;
        private Model.Enum.TipoEstrategia? _tipoEstrategia;
        private Model.Enum.TipoSituacaoCasamento? _tipoSituacaoCasamento;
      



        //20080420 16:23 - Alterado - DMilanez.7Comm
        public TipoEstrategiaOfertaBovespaFix? TipoEstrategiaOfertaBovespaFix
        {
            get { return TipoEstrategiaOfertaBovespaFixField; }
            set { TipoEstrategiaOfertaBovespaFixField = value; this.OnPropertyChanged("TipoEstrategiaOfertaBovespaFix"); }
        }

        public string Bolsa
        {
            get
            {
                return this.BolsaField;
            }
            set
            {
                this.BolsaField = value; this.OnPropertyChanged("Bolsa");
            }
        }

        public System.Nullable<int> Cliente
        {
            get
            {
                return this.ClienteField;
            }
            set
            {
                this.ClienteField = value; this.OnPropertyChanged("Cliente");
            }
        }

        public string CodigoTitulo
        {
            get
            {
                return this.CodigoTituloField;
            }
            set
            {
                this.CodigoTituloField = value; this.OnPropertyChanged("CodigoTitulo");
            }
        }


        public int? ContraParte
        {
            get
            {
                return this.ContraParteField;
            }
            set
            {
                this.ContraParteField = value; this.OnPropertyChanged("ContraParte");
            }
        }


        public System.Nullable<System.DateTime> DataMovimento
        {
            get
            {
                return this.DataMovimentoField;
            }
            set
            {
                this.DataMovimentoField = value; this.OnPropertyChanged("DataMovimento");
            }
        }


        public System.DateTime? DataNegocio
        {
            get
            {
                return this.DataNegocioField;
            }
            set
            {
                this.DataNegocioField = value; this.OnPropertyChanged("DataNegocio");
            }
        }


        public System.Nullable<System.DateTime> DataPregao
        {
            get
            {
                return this.DataPregaoField;
            }
            set
            {
                this.DataPregaoField = value; this.OnPropertyChanged("DataPregao");
            }
        }


        public System.Nullable<int> DiasLiquidacao
        {
            get
            {
                return this.DiasLiquidacaoField;
            }
            set
            {
                this.DiasLiquidacaoField = value; this.OnPropertyChanged("DiasLiquidacao");
            }
        }


        public System.Nullable<int> DigitoNegocio
        {
            get
            {
                return this.DigitoNegocioField;
            }
            set
            {
                this.DigitoNegocioField = value; this.OnPropertyChanged("DigitoNegocio");
            }
        }


        public System.Nullable<TipoEstrategia> Estrategia
        {
            get
            {
                return this.EstrategiaField;
            }
            set
            {
                this.EstrategiaField = value; this.OnPropertyChanged("Estrategia");
            }
        }


        public decimal? FatorValorizacao
        {
            get
            {
                return this.FatorValorizacaoField;
            }
            set
            {
                this.FatorValorizacaoField = value; this.OnPropertyChanged("FatorValorizacao");
            }
        }


        public int? NumeroNegocio
        {
            get
            {
                return this.NumeroNegocioField;
            }
            set
            {
                this.NumeroNegocioField = value; this.OnPropertyChanged("NumeroNegocio");
            }
        }


        public string Operador
        {
            get
            {
                return this.OperadorField;
            }
            set
            {
                this.OperadorField = value; this.OnPropertyChanged("Operador");
            }
        }


        public System.Nullable<decimal> PercentualCorrespondente
        {
            get
            {
                return this.PercentualCorrespondenteField;
            }
            set
            {
                this.PercentualCorrespondenteField = value; this.OnPropertyChanged("PercentualCorrespondente");
            }
        }


        public System.Nullable<int> PrazoTermo
        {
            get
            {
                return this.PrazoTermoField;
            }
            set
            {
                this.PrazoTermoField = value; this.OnPropertyChanged("PrazoTermo");
            }
        }


        public System.Nullable<decimal> Preco
        {
            get
            {
                return this.PrecoField;
            }
            set
            {
                this.PrecoField = value; this.OnPropertyChanged("Preco");
            }
        }


        public System.Nullable<decimal> QuantidadeCasada
        {
            get
            {
                return this.QuantidadeCasadaField;
            }
            set
            {
                this.QuantidadeCasadaField = value; this.OnPropertyChanged("QuantidadeCasada");
            }
        }


        public System.Nullable<decimal> Saldo
        {
            get
            {
                return this.SaldoField;
            }
            set
            {
                this.SaldoField = value; this.OnPropertyChanged("Saldo");
            }
        }


        public TipoCasamento? TipoCasamento
        {
            get
            {
                return this.TipoCasamentoField;
            }
            set
            {
                this.TipoCasamentoField = value; this.OnPropertyChanged("TipoCasamento");
            }
        }


        public System.Nullable<TipoLiquidacaoNegocio> TipoLiquidacao
        {
            get
            {
                return this.TipoLiquidacaoField;
            }
            set
            {
                this.TipoLiquidacaoField = value; this.OnPropertyChanged("TipoLiquidacao");
            }
        }


        public EnumWrapper<TipoMercado> TipoMercado
        {
            get
            {
                return this.TipoMercadoField;
            }
            set
            {
                this.TipoMercadoField = value; this.OnPropertyChanged("TipoMercado");
            }
        }


        public System.Nullable<TipoNaturezaOperacao> TipoNaturezaOperacao
        {
            get
            {
                return this.TipoNaturezaOperacaoField;
            }
            set
            {
                this.TipoNaturezaOperacaoField = value; this.OnPropertyChanged("TipoNaturezaOperacao");
            }
        }


        public System.Nullable<TipoOfertaBovespaFix> TipoOfertaBovespaFix
        {
            get
            {
                return this.TipoOfertaBovespaFixField;
            }
            set
            {
                this.TipoOfertaBovespaFixField = value; this.OnPropertyChanged("TipoOfertaBovespaFix");
            }
        }


        public System.Nullable<TipoOrigemNegocio> TipoOrigem
        {
            get
            {
                return this.TipoOrigemField;
            }
            set
            {
                this.TipoOrigemField = value; this.OnPropertyChanged("TipoOrigem");
            }
        }


        public TipoSituacaoOrdem TipoSituacao
        {
            get
            {
                return this.TipoSituacaoField;
            }
            set
            {
                this.TipoSituacaoField = value; this.OnPropertyChanged("TipoSituacao");
            }
        }


        public System.Nullable<TipoTermo> TipoTermo
        {
            get
            {
                return this.TipoTermoField;
            }
            set
            {
                this.TipoTermoField = value; this.OnPropertyChanged("TipoTermo");
            }
        }


        //public ModelTitulo Titulo
        //{
        //    get
        //    {
        //        return this.TituloField;
        //    }
        //    set
        //    {
        //        this.TituloField = value;
        //    }
        //}


        public string TituloObjeto
        {
            get
            {
                return this.TituloObjetoField;
            }
            set
            {
                this.TituloObjetoField = value; this.OnPropertyChanged("TituloObjeto");
            }
        }


        public System.Nullable<System.DateTime> VencimentoOpcoesTermo
        {
            get
            {
                return this.VencimentoOpcoesTermoField;
            }
            set
            {
                this.VencimentoOpcoesTermoField = value; this.OnPropertyChanged("VencimentoOpcoesTermo");
            }
        }


        public System.Nullable<System.DateTime> HoraNegocio
        {
            get
            {
                return this.HoraNegocioField;
            }
            set
            {
                this.HoraNegocioField = value; this.OnPropertyChanged("HoraNegocio");
            }
        }


        public System.Nullable<decimal> Quantidade
        {
            get
            {
                return this.QuantidadeField;
            }
            set
            {
                this.QuantidadeField = value; this.OnPropertyChanged("Quantidade");
            }
        }


        public bool? PontaGeradoraOferta
        {
            get
            {
                return this.PontaGeradoraOfertaField;
            }
            set
            {
                this.PontaGeradoraOfertaField = value; this.OnPropertyChanged("PontaGeradoraOferta");
            }
        }


        public bool? NaoLiquidaNota
        {
            get
            {
                return this.NaoLiquidaNotaField;
            }
            set
            {
                this.NaoLiquidaNotaField = value; this.OnPropertyChanged("NaoLiquidaNota");
            }
        }


        public bool? NegociadoAfterMarket
        {
            get
            {
                return this.NegociadoAfterMarketField;
            }
            set
            {
                this.NegociadoAfterMarketField = value; this.OnPropertyChanged("NegociadoAfterMarket");
            }
        }


        public string Observacao
        {
            get
            {
                return this.ObservacaoField;
            }
            set
            {
                this.ObservacaoField = value; this.OnPropertyChanged("Observacao");
            }
        }


        public System.Nullable<int> CodigoCorrespondente
        {
            get
            {
                return this.CodigoCorrespondenteField;
            }
            set
            {
                this.CodigoCorrespondenteField = value; this.OnPropertyChanged("CodigoCorrespondente");
            }
        }
        public Model.Enum.TipoEstrategia? TipoEstrategia
        {
            get { return _tipoEstrategia; }
            set { _tipoEstrategia = value; this.OnPropertyChanged("TipoEstrategia"); }
        }
        public Model.Enum.TipoSituacaoCasamento? TipoSituacaoCasamento
        {
            get { return _tipoSituacaoCasamento; }
            set { _tipoSituacaoCasamento = value; }
        }
        public Model.Titulo Titulo
        {
            get
            {
                return this._titulo;
            }
            set
            {
                this._titulo = value;
            }
        }
    }
}
